home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / GEM / AESOBJEC.I < prev    next >
Encoding:
Modula Implementation  |  1993-10-29  |  4.8 KB  |  164 lines

  1. IMPLEMENTATION MODULE AESObjects;
  2. (*$L-, N+, Y+*)
  3.  
  4.  
  5. (*  MEGAMAX MODULA 2 GEM-Library :  Die AES Objektfunktionen
  6.  *
  7.  *  Autor: Manuel Chakravarty           Erstellt :  05.11.87
  8.  *
  9.  *  Version   2.2     V#0020
  10.  *)
  11.  
  12. (*  05.11.87    | Übernahme von 'GEMBase' und 'GEMExt'
  13.  *  15.02.90    | Anpassung auf Compilerversion 4.0
  14.  *  02.04.90    | Anpassung auf public arrays
  15.  *  05.10.90    | Keine verdrehten SETs mehr
  16.  *)
  17.  
  18.  
  19. FROM    SYSTEM          IMPORT ASSEMBLER;
  20.  
  21. FROM    GrafBase        IMPORT Point, Rectangle;
  22.  
  23. FROM    GEMGlobals      IMPORT PtrObjTree, OStateSet, GemChar;
  24.  
  25. IMPORT  GEMShare;
  26.  
  27. (*$I GEMOPS.ICL *)
  28.  
  29.  
  30. PROCEDURE DrawObject(tree:PtrObjTree;start,depth:CARDINAL;frame:Rectangle);
  31.  
  32. BEGIN
  33.   ASSEMBLER
  34.     MOVE.L      pubs,A0
  35.     LEA         pubArrays.aINTIN+12(A0),A1
  36.     MOVE.L      -(A3),-(A1)
  37.     MOVE.L      -(A3),-(A1)
  38.     MOVE.L      -(A3),-(A1)
  39.     MOVE.L      -(A3),pubArrays.ADDRIN(A0)
  40.     MOVE.W      #OBJC_DRAW,(A3)+
  41.     JSR         aes_if
  42.     JSR         testINTOUT0
  43.   END;
  44. END DrawObject;
  45.         
  46. PROCEDURE ChangeObjState (tree    : PtrObjTree;
  47.                           index   : CARDINAL;
  48.                           frame   : Rectangle;
  49.                           newState: OStateSet;
  50.                           redraw  : BOOLEAN);
  51.                          
  52.   BEGIN
  53.     ASSEMBLER
  54.         MOVE.L  pubs,A0
  55.         LEA     pubArrays.aINTIN+16(A0),A1
  56.         MOVE.W  -(A3),-(A1)
  57.         MOVE.W  -(A3), -(A1)
  58.         MOVE.L  -(A3),-(A1)
  59.         MOVE.L  -(A3),-(A1)
  60.         MOVE.W  -(A3),pubArrays.aINTIN(A0)
  61.         MOVE.L  -(A3),pubArrays.ADDRIN(A0)
  62.         MOVE.W  #OBJC_CHANGE,(A3)+
  63.         JSR     aes_if
  64.         JSR     testINTOUT0
  65.     END;
  66.   END ChangeObjState;
  67.  
  68. PROCEDURE FindObject(tree:PtrObjTree;start,depth:CARDINAL;spot:Point):CARDINAL;
  69.  
  70. BEGIN
  71.   ASSEMBLER
  72.     MOVE.L      pubs,A0
  73.     MOVE.L      -(A3),pubArrays.aINTIN+4(A0)
  74.     MOVE.L      -(A3),pubArrays.aINTIN(A0)
  75.     MOVE.L      -(A3),pubArrays.ADDRIN(A0)
  76.     MOVE.W      #OBJC_FIND,(A3)+
  77.     JSR         aes_if
  78.     MOVE.L      pubs,A0
  79.     MOVE.W      pubArrays.aINTOUT(A0),(A3)+
  80.   END;
  81. END FindObject;
  82.  
  83. PROCEDURE ObjectOffset(tree:PtrObjTree;index:CARDINAL):Point;
  84.  
  85. BEGIN
  86.   ASSEMBLER
  87.     MOVE.L      pubs,A0
  88.     MOVE.W      -(A3),pubArrays.aINTIN(A0)
  89.     MOVE.L      -(A3),pubArrays.ADDRIN(A0)
  90.     MOVE.W      #OBJC_OFFSET,(A3)+
  91.     JSR         aes_if
  92.     MOVE.L      pubs,A0
  93.     MOVE.L      pubArrays.aINTOUT+2(A0),(A3)+
  94.     JSR         testINTOUT0
  95.   END;
  96. END ObjectOffset;
  97.         
  98. PROCEDURE AddObject(tree:PtrObjTree;parent,child:CARDINAL);
  99.  
  100. BEGIN
  101.   ASSEMBLER
  102.     MOVE.L      pubs,A0
  103.     MOVE.L      -(A3),pubArrays.aINTIN(A0)
  104.     MOVE.L      -(A3),pubArrays.ADDRIN(A0)
  105.     MOVE.W      #OBJC_ADD,(A3)+
  106.     JSR         aes_if
  107.     JSR         testINTOUT0
  108.   END;
  109. END AddObject;
  110.         
  111. PROCEDURE DeleteObject(tree:PtrObjTree;index:CARDINAL);
  112.  
  113. BEGIN
  114.   ASSEMBLER
  115.     MOVE.L      pubs,A0
  116.     MOVE.W      -(A3),pubArrays.aINTIN(A0)
  117.     MOVE.L      -(A3),pubArrays.ADDRIN(A0)
  118.     MOVE.W      #OBJC_DELETE,(A3)+
  119.     JSR         aes_if
  120.     JSR         testINTOUT0
  121.   END;
  122. END DeleteObject;
  123.  
  124. PROCEDURE ObjectOrder(tree:PtrObjTree;index:CARDINAL;newPos:INTEGER);
  125.  
  126. BEGIN
  127.   ASSEMBLER
  128.     MOVE.L      pubs,A0
  129.     MOVE.L      -(A3),pubArrays.aINTIN(A0)
  130.     MOVE.L      -(A3),pubArrays.ADDRIN(A0)
  131.     MOVE.W      #OBJC_ORDER,(A3)+
  132.     JSR         aes_if
  133.     JSR         testINTOUT0
  134.   END;
  135. END ObjectOrder;
  136.  
  137. PROCEDURE EditObjText(tree:PtrObjTree;index:CARDINAL;ch:GemChar;
  138.                       VAR charPos:CARDINAL;edKind:EditObjMode);
  139. BEGIN
  140.   ASSEMBLER
  141.     MOVE.L      pubs,A0
  142.     LEA         pubArrays.aINTIN+8(A0),A1
  143.     MOVE.W      -(A3),-(A1)
  144.     MOVE.L      -(A3),A2
  145.     MOVE.L      A2,-(A7)                ; Save VAR-Ptr
  146.     MOVE.W      (A2),-(A1)
  147.     MOVE.W      -(A3),-(A1)
  148.     MOVE.W      -(A3),-(A1)
  149.     MOVE.L      -(A3),pubArrays.ADDRIN(A0)
  150.     MOVE.W      #OBJC_EDIT,(A3)+
  151.     JSR         aes_if
  152.     JSR         testINTOUT0
  153.     MOVE.L      (A7)+,A2                ; Restrore VAR-Ptr
  154.     TST.W       error
  155.     BNE         cont
  156.     MOVE.L      pubs,A0
  157.     MOVE.W      pubArrays.aINTOUT+2(A0),(A2)    ; return new text index
  158. cont
  159.   END;
  160. END EditObjText;
  161.         
  162. END AESObjects.
  163. (* $FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$00000868$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65E$FFF8B65EÇ$000005C6T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$000001AA$FFEDD2D6$000005BD$000005C6$FFEDD2D6$00000030$000005B7$000005C6$00000F72$FFEC5560$00001052$00001071$000005B7$000005C6$0000017F$FFED8E07áÇü*)
  164.